package com.azxcrm.project.system.customer.dao;

import java.util.List;

import com.azxcrm.project.system.customer.domain.CustomerInfo;	

/**
 * 客户 数据层
 * 
 * @author Dustyone
 * @date 2018-09-04
 */
public interface ICustomerInfoDao 
{

	/**
     * 查询客户信息
     * 
     * @param customerId 客户ID
     * @return 客户信息
     */
	public CustomerInfo selectCustomerInfoById(Integer customerId);
	
	/**
     * 通过产品类型id查询产品类型列表
     * 
     * @param productInfo 产品类型信息
     * @return 产品类型集合
     */
	public List<CustomerInfo> selectCustomerBackgroundId(Integer backgroundId);

	/**
     * 通过手机号查询
     * 
     * @param productInfo 
     * @return 
     */
	public CustomerInfo selectCustomerCellPhone(String cellphone);
	
	/**
	 * 通过身份证查询客户信息
	 * @param identityNum
	 * @return
	 */
	public CustomerInfo selectCustomerByIdNo(String identityNum);

	/**
     * 查询客户列表
     * 
     * @param customerInfo 客户信息
     * @return 客户集合
     */
	public List<CustomerInfo> selectCustomerInfoList(CustomerInfo customerInfo);
	
	/**
     * 新增客户
     * 
     * @param customerInfo 客户信息
     * @return 结果
     */
	public int insertCustomerInfo(CustomerInfo customerInfo);
	
	/**
     * 修改客户
     * 
     * @param customerInfo 客户信息
     * @return 结果
     */
	public int updateCustomerInfo(CustomerInfo customerInfo);
	
	/**
     * 删除客户
     * 
     * @param customerId 客户ID
     * @return 结果
     */
	public int deleteCustomerInfoById(Integer customerId);
	
	/**
     * 批量删除客户
     * 
     * @param customerIds 需要删除的数据ID
     * @return 结果
     */
	public int batchDeleteCustomerInfo(Integer[] customerIds);
	
	/**
	 * 校验客户手机号是否重复
	 * 
	 * @param cellphone 需要查询的手机号
	 * @return 结果
	 */
	public int checkCellphone(String cellphone);
	
	/**
	 * 模糊查询客户信息
	 * 
	 * @param name 需要查询的用户名，@param cellphone 需要查询的手机号，@param identityNum 需要查询的身份证号
	 * @return 结果
	 */
	public List<CustomerInfo> selectCustomerInfo(CustomerInfo customerInfo);
}
	